package com.heima.freemarker.test;

import com.heima.freemarker.entity.Student;
import freemarker.template.Configuration;
import freemarker.template.Template;
import lombok.SneakyThrows;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.io.FileWriter;
import java.util.*;

/**
 * @Author: xrl
 * @Date: 2022/10/12  20:26
 * @Version 1.0
 */
@SpringBootTest
public class FreemarkerTest2 {

    @Autowired
    private Configuration configuration;

    /**
     * 通过模板文件，生成html文件
     */
    @SneakyThrows
    @Test
    void testFreemarker() {
        //通过模板文件，创建模板对象
        Template template = configuration.getTemplate("list.ftl");

        /**
         * 合成
         * 第一个参数：模型数据，就是数据
         * 第二个参数：合成后的输出流
         */
        Map<String ,Object> model = getData();
        template.process(model,new FileWriter("E:\\code_plus\\index2.html"));
    }

    private Map<String, Object> getData() {
        Map<String, Object> map = new HashMap<>();
        Student stu1 = new Student();
        stu1.setName("张三");
        stu1.setAge(19);
        stu1.setMoney(1000f);

        Student stu2 = new Student();
        stu2.setName("李四");
        stu2.setAge(20);
        stu2.setMoney(8000f);
        List<Student> list = new ArrayList<>();
        list.add(stu1);
        list.add(stu2);
        map.put("stus", list);

        Map<String, Student> studentMap = new HashMap<>();
        studentMap.put("stu1", stu1);
        studentMap.put("stu2", stu2);
        map.put("stuMap", studentMap);

        //空值处理
//        map.put("name", "java yyds");

        map.put("today", new Date());

        //值去除逗号处理
        map.put("point", 102920122);

        return map;
    }

}
